1. Field of the Invention
The present invention relates to a system and a method for establishing a session between a client terminal and a server, and more particularly to a system and a method for reestablishing a session for a messenger service between a client terminal and a server.
2. Description of the Related Art
During communication with a server, a client terminal may be abruptly disconnected due to a normal or an abnormal off, such as log-off or timeout. In such an event, it is necessary to reestablish a session between the client terminal and the server.
FIG. 1 is a view illustrating the structure of a conventional system for communication between a client terminal and a server.
In FIG. 1, reference numeral 10 refers to client terminals. As shown in FIG. 1, a personal computer 100 connected to a server 110 through an Internet network 108, as well as a mobile phone 102 and a PDA (Personal Data Assistant) 104 connected to the server 110 through a wireless mobile communication network 106, can be client terminals. All other terminals capable of receiving a messenger service are also included within the scope of client terminals.
When any client terminal 10 sends a request for login, the server 110 determines whether the client terminal 10 is an effective user and, if it is an effective user, sends a reply with a new session ID to the client terminal 10. Subsequently, the client terminal 10 receives a friend list (or a contact list) and presence information about the listed friends (i.e., other users) from the server 110. The presence information includes the status (e.g., online or offline), addresses, and other contact data, such as telephone numbers, of the listed friends.
Messenger services offered to the users through client terminals vary according to the messenger service providers. Such services include a Yahoo messenger service.
The server 110 connected to the client terminals 10 through the Internet network, provides a messenger service upon a demand from the client terminally. The server 110 has a user information database that includes a friend list of each client terminal user, online or offline status (of the listed friends) and, address and other contact data of each listed friend (e.g., a telephone number of each listed friend).
FIG. 2 is a flow diagram showing a conventional process of session establishment between a client terminal and a server.
When a user inputs a demand for messenger service, the user's client terminal 10 sends a request for login to the server 110 at step 204. Upon receiving the login request, the server 110 checks whether the client terminal 10 is an effective user and sends a new session ID to the client terminal 10. The client terminal 10 and the server 110 perform a service negotiation and a capability negotiation to send or receive information necessary to log in, such as a service to be used and the capability of the client terminal 10 at step 205. The client terminal 10 then sends a request for presence information to the server 110 in step 206. Then the client terminal 10 receives a friend list and presence information of the listed friends (other users) from the server 110 in step 208. The presence information includes the online or offline status, addresses, and other contact data, such as telephone numbers, of the listed friends.
However, during the session establishment, unnecessary data may be transmitted, thereby increasing traffic and consequently, consuming time. Accordingly, there is a need for an improvement of the conventional session establishment system and method.
It is assumed that the communication between the server 110 and a user's client terminal 10 was terminated normally or abnormally at 3:00 p.m. and that the client terminal 10 tries to access the server 110 again at 4:00 p.m. Since one hour lapsed after termination of the previous access, the session information (including the type of service offered to the user, capability of the client terminal, presence information of other users in the friend list and exchanged messages) possessed by the client terminal 10 one hour earlier may have been changed. Therefore, the client terminal 10 checks all relevant data received from the server 110 to confirm whether the session information is still effective. Even unchanged data is checked at this time. In other words, if the session information stored in a session information database 112 at 3:00 p.m. has not been changed until 4:00 p.m., the client terminal 10 will request all session information again at 4:00 p.m. Also, the server 110 will send all the previous session information which was provided an hour earlier in response to the request of the client terminal 10. This procedure is inefficient in terms of data traffic and time.
Since the client terminal 10 does not store session information when terminating its access to the server 110, it has to receive all the data of the previous session information from the server 110 when reaccessing the server 110. Even if the session information available at the next access is identical to that used at the previous access or has few updated items, the client terminal 10 receives all relevant data from the server 110, which causes unnecessary data traffic and consumes time.